home *** CD-ROM | disk | FTP | other *** search
/ Power CD / Power CD ATARI-Rechner Lieben.iso / UTILITY / GLASNOST / GLASNOST.DOK < prev    next >
Encoding:
Text File  |  1993-01-26  |  26.9 KB  |  569 lines

  1.   
  2.   GLASNOST
  3.   
  4.   Version 1.0 Public Domain
  5.   Januar 1993, Hans Hömberg
  6.   
  7.  
  8.   
  9.   Was ist Glasnost
  10.   ------------------------------------------------------------------------
  11.   Glasnost besteht aus 6 kleinen Utilities (TTP's), die in Verbindung mit
  12.   einer textorientierten Shell, z.B Mupfel von Gereon Steffens, zu etwas
  13.   mehr Durchblick im TOS/GEMDOS Dateisystem verhelfen sollen. Mit Glasnost
  14.   kann jeder Datei ein max. 40 Zeichen langer Infotext zugeordnet werden,
  15.   der im Verzeichnislisting angezeigt wird und über den die Datei auch an-
  16.   gesprochen werden kann.
  17.   
  18.   Leute die ausschliesslich mit GEM Programmen arbeiten sollten sich nun
  19.   besser eine andere Lektüre suchen, da Glasnost unter einer grafischen
  20.   Oberfläche nicht sinnvoll einsetzbar ist. Das ist sehr schade, denn ge-
  21.   rade bei GEM Desktop's, wie z.B GEMINI von Stefan Eissing, wäre eine
  22.   Einbindung von erweiterten Dateinamen über den Menüpunkt `Datei Info'
  23.   besonders interressant..
  24.   
  25.   Als Vorbild für Glasnost musste die "describe" Funktion der MS-DOS Shell
  26.   4DOS herhalten. Zugunsten eines schnelleren Schreib/Lese-zugriffs wurde
  27.   jedoch auf eine 100%ige Kompatibilität verzichtet; trotzdem können die
  28.   4DOS Kommentare von Glasnost problemlos gelesen werden (und umgekehrt).
  29.         
  30.   Glasnost kommt in Form folgender Dateien daher:
  31.   
  32.   - DESCRIBE.TTP    Kommentare vergeben und editieren.
  33.   - DIR.TTP         Verzeichnislisting ausgeben, inc. Kommentar
  34.   - COPY.TTP        Dateien kopieren, inc. Kommentare
  35.   - RENAME.TTP      Dateien umbenennen/verschieben, inc. Kommentar
  36.   - DELETE.TTP      Dateien löschen, inc. Kommentar
  37.   - APPLY.TTP       Shell Funktionen anwenden, laut Bedingung
  38.   - GLASNOST.DOK    Diese Gebrauchsanleitung
  39.   
  40.   In einem getrennten Ordner o. Archiv und zusammen mit dieser Datei darf
  41.   Glasnost, auch in Verbindung mit anderen Freeware/Shareware Produkten,
  42.   gerne weitergegeben werden. Es _sollte_ auf jedem Atari ST/TT mit einer
  43.   TOS Version ab 1.02 lauffähig sein.
  44.   
  45.   *der Autor neigt gelegentlich zu einer etwas geschwollenen Ausdrucks-
  46.    weise, ich bitte das (milde) zu berücksichtigen..
  47.                                                              *der Säzzer
  48.   
  49.  
  50.   
  51.   Installation
  52.   ------------------------------------------------------------------------
  53.   Wie schon gesagt, die Anwendung von Glasnost ist nur zusammen mit einem
  54.   leistungsfähigen Kommandozeileninterpreter (meistens "Shell" oder "CLI"
  55.   genannt) möglich. Ich beziehe mich dabei insbesondere auf die Arbeit mit
  56.   dem genialen Gemini/Mupfel Gespann, womit es u.a. möglich ist Kommando-
  57.   zeilen sehr komfortabel in einem GEM-fenster zu bearbeiten. Alle Shells
  58.   die das erweiterte `xARG' Verfahren zur Argumentübergabe unterstützen
  59.   und ihre internen Funktionen über die Systemvariable `_shell_p' anderen
  60.   Programmen zugänglich machen, sind vorzüglich zur Ansteuerung von Glas-
  61.   nost geeignet (z.B Gulam). Im folgenden wird davon ausgegangen dass Sie
  62.   mit der Bedienung solcher Shells bereits vertraut sind..
  63.   
  64.   ..kopieren Sie alle Glasnost TTP's in ein Verzeichnis das der Shell
  65.   durch die Environmentvariable `PATH' bekannt ist, das war's FERTIG.
  66.   
  67.   Vorteilhaft wäre, wenn sich dieses Verzeichnis auf einer Ramdisk befin-
  68.   det und standartmässig gehasht wird (Mupfel), das beschleunigt den Zu-
  69.   griff ganz erheblich, ist aber keine Voraussetzung. 
  70.  
  71.  
  72.   
  73.   Allgemeine Benutzung
  74.   ------------------------------------------------------------------------
  75.   Die Glasnost TTP's lassen sich nun, genauso einfach wie die internen
  76.   Shell Befehle, über ihre Namen aufrufen. Sie unterscheiden sich dabei in
  77.   Funktion und Bedienung kaum von den korrespondierenden Befehlen: ls, dir
  78.   cp, copy, mv, ren, rm, und del - wie sie auch auf anderen Systemen nicht
  79.   ganz unbekannt sind. (UNI*, DOSe undundund..)
  80.   
  81.   Dabei sollen die Glasnost Funktionen: dir, copy, rename u. delete ledig-
  82.   lich als Ersatz für die eingebauten Shell Befehle herhalten; was aber
  83.   nur nötig ist wenn mit Dateien gearbeitet wird die auch tatsächlich mit
  84.   Kommentaren belegt sind..
  85.   
  86.   ..genau das lässt sich mit der Funktion "describe" bewerkstelligen, wäh-
  87.   rend "apply" dazu dient solche Dateien auch über den erweiterten Datei-
  88.   namen (Kommentar) anzusprechen, um z.B irgendein internes oder externes
  89.   Kommando darauf anzuwenden (löschen, kopieren, archivieren u.s.w).
  90.   
  91.   Alle TTP's folgen bei der Auswertung der Kommandozeile einer einheitli-
  92.   chen Logik (hoffentlich). Alle Argumente die nicht durch ein vorange-
  93.   stelltes '-' als Option oder Schalter gekennzeichnet sind werden als
  94.   Verzeichnis\Dateiname interpretiert. Dabei ist in den meisten Fällen die
  95.   Übergabe von beliebig vielen Argumenten möglich, es wird aber nur die
  96.   Pfadkomponente des ersten und evt. des letzten (copy, rename) Arguments
  97.   beachtet, alle weiteren werden ignoriert. Die üblichen Wildcards '*' und
  98.   '?' sind natürlich auch erlaubt. Zugriffe auf nicht vorhandene Laufwerke
  99.   oder Verzeichnisse werden nur von "dir" abgefangen, die anderen Tools
  100.   reagieren mit einer BIOS Fehlermeldung.
  101.   
  102.   Die Environmentvariable `DSCFILE' gibt den Dateinamen an, unter dem die
  103.   Glasnost Daten verwaltet werden; voreingestellt ist `DESCRIPT.ION'. Sie
  104.   wird von allen Tools berücksichtigt, braucht aber normalerweise nicht
  105.   gesetzt zu werden.
  106.  
  107.   Alle Optionen werden durch 1 Buchstaben dargestellt und lassen sich auch
  108.   in Grüppchen zusammenfassen ( z.B -xrdsf ). Über die Option '-?' gibt
  109.   jedes TTP einen kurzen Hilfetext aus.
  110.  
  111.   
  112.                
  113.   describe
  114.   ------------------------------------------------------------------------
  115.   describe [Optionen] [Verzeichnis\][Dateien] [Kommentar]
  116.               
  117.   Wird benötigt um Kommentare zu vergeben oder zu editieren. Es können
  118.   (fast) beliebig viele Argumente angegeben werden. Falls kein Verzeichnis
  119.   o. Dateiname angegeben ist, werden alle Dateien im aktuellen Verzeichnis
  120.   bearbeitet. `Kommentar' muss min. 1 Leerzeichen enthalten, sonst wird er
  121.   als Dateiname interpretiert.  Wenn `Kommentar' fehlt, tritt der einge-
  122.   baute describe Editor auf den Plan; die angegebenen Dateien oder das
  123.   komplette Verzeichnis erscheinen nach Namen sortiert und können mit den
  124.   folgenden Tasten editiert werden:
  125.   
  126.   Cursortasten      wie üblich.
  127.   <SHIFT>links      zum Zeilenanfang.
  128.   <SHIFT>rechts     zum Zeilenende
  129.   ESCAPE            Ganze Zeile löschen
  130.   <ALT>D            Text zwischen Cursor u. Zeilende löschen
  131.   <ALT>C            Text zwischen Cursor u. Zeilende merken
  132.   <ALT>P o. UNDO    Gemerkten Text einfügen    
  133.   RETURN            zur nächsten Zeile.
  134.   <CONTROL>A o. C   Abbruch ohne Speichern.
  135.   <CONTROL>S        Abbruch mit Speichern.
  136.   HELP              Es erscheint das Hilfemenü:
  137.                     "[A]bbruch, [S]ichern, [W]eiter"
  138.   
  139.   ESCAPE und <ALT>D kann mit UNDO rückgängig gemacht werden. Mit den nor-
  140.   malen Tasten kann der Text editiert werden wie üblich. Alle Ascii Zei-
  141.   chen sind erlaubt, die maximale Zeilenlänge ist 40 Zeichen.
  142.   
  143.   Optionen:
  144.   
  145.   -d  (delete)    die Kommentare der angegebenen Dateien werden gelöscht
  146.   -v  (version)   aktuelle Versionsnummer ausgeben
  147.   
  148.   Environment:
  149.   
  150.   ROWS      gibt die Bildschirmgrösse in Zeilen an, falls diese Variable
  151.             nicht gesetzt ist werden 25 Zeilen vorausgesetzt.
  152.   DSCFILE   Name der Glasnost Systemdatei, siehe -> Allgemeine Benutzung.
  153.  
  154.  
  155.   
  156.   dir
  157.   ------------------------------------------------------------------------
  158.   dir [Optionen] [Verzeichnis\][Dateien]
  159.   
  160.   Dies ist ein Ersatz für die interne Shell Funktion "ls" oder "dir". Er
  161.   verhält sich wie jede handelsübliche dir Funktion; bis auf zwei kleine 
  162.   Unterschiede:
  163.   1.)   Die hübschen Kommentare die mit "describe" erstellt wurden, werden
  164.         angezeigt. (..ausser bei mehrspaltiger Ausgabe)
  165.   2.)   Bei der Anzeige von besonders langen Verzeichnislistings kann mit
  166.         den Cursor auf/ab Tasten gescrollt werden, jede andere Taste been-
  167.         det diese Funktion. Dieses Feature wird bei einer Ausgabeumleitung
  168.         ("dir > dir.txt") automatisch unterdrückt, es lässt sich auch mit
  169.         der Option '-s' absschalten.
  170.   
  171.   Optionen:
  172.   
  173.   -h    (hidden)    versteckte und Systemdateien werden angezeigt.
  174.   -u    (upper)     Dateinamen werden in Groβschrift ausgegeben.
  175.   -v    (version)   die aktuelle Versionsnummer wird ausgegeben.
  176.   -d    (dump)      es werden ausschliesslich Dateinamen gelistet.
  177.   -s    (small)     Kopf- und Fussszeilen werden unterdrückt,
  178.   -r    (reverse)   Umkehrung der normalen Sortierreihenfolge.
  179.   -1|2|3|4|5|6      formatierte Ausgabe mit -x Spalten.
  180.   
  181.   -a[^]LSHDAR
  182.         (attribute) bei -a ohne Zusatzargument werden im Listing statt der
  183.         Erstellungsszeit die Dateiattribute angezeigt. Bei Angabe eines
  184.         oder mehrerer Zusatzargumente (Grossbuchstaben ohne Leerzeichen)
  185.         werden nur Dateien aufgelistet bei denen die entsprechenden Attri-
  186.         bute gesetzt  - oder (bei vorangestelltem '^') nicht gesetzt sind.
  187.         Als Attribute gelten:   [L]abel, [S]ystem, [H]idden,
  188.                                 [D]irectory, [A]rchiv, [R]ead only.
  189.   
  190.   -oN|T|L|D|A|K|U
  191.         (order) Hiermit kann festgelegt werden nach welchem Kriterium das
  192.         Verzeichnislisting sortiert wird. -o braucht ein Argument in Form
  193.         eines Grossbuchstabens, dieser hat folgende Bedeutung:
  194.               [N]ame, [T]yp, [L]änge, [D]atum/Zeit, [A]ttribut,
  195.               [K]ommentar, [U]nsortiert.  Voreingestellt ist [N]ame.
  196.   
  197.   Environment:
  198.   
  199.   ROWS      gibt die Bildschirmgrösse in Zeilen an, falls diese Variable
  200.             nicht gesetzt ist werden 25 Zeilen vorausgesetzt.
  201.   DSCFILE   Name der Glasnost Systemdatei, siehe -> Allgemeine Benutzung.
  202.  
  203.  
  204.   
  205.   copy
  206.   ------------------------------------------------------------------------
  207.   copy [Optionen] [Quelle\][Dateien] [Ziel\][Datei]
  208.   
  209.   Da der Shell-interne "cp" o. "copy" Befehl die Glasnost Kommentare nicht
  210.   berücksichtigt, ist diese Funktion nötig. Sie kopiert `Quelle\Datei'
  211.   nach `Ziel\Datei' oder eine oder mehrere `Dateien' in das angegebene
  212.   Verzeichnis in Dateien gleichen Namens. Dabei können auch komplette Ver-
  213.   zeichnisse kopiert werden, allerdings nur auf einer Ebene; d.h. rekur-
  214.   sive Kopiervorgänge sind leider nicht möglich (Das kann zum Teil mit der
  215.   Funktion "apply" erledigt werden..). Wenn nur 1 Argument angegeben ist
  216.   wird das aktuelle Verzeichnis als Ziel betrachtet, sonst immer das
  217.   letzte Argument. (sollte beachtet werden wenn die Shell eine Wildcard-
  218.   expansion durchführt).
  219.   
  220.   Optionen:
  221.   
  222.   -v    (version)     aktuelle Versionsnummer ausgeben.
  223.   -q    (quiet)       alle Textausgaben unterdrücken.
  224.   -d    (date)        Datum der Quelldateien ignorieren.
  225.   -n    (nonexistent) bereits vorhandene Dateien nicht kopieren.
  226.   -o    (over)        Überschreiben von vorhandenen Dateien ohne
  227.                       Sicherheitsabfrage.
  228.   
  229.   Environment:
  230.  
  231.   DSCFILE   Name der Glasnost Systemdatei, siehe -> Allgemeine Benutzung.
  232.   
  233.  
  234.  
  235.   rename
  236.   ------------------------------------------------------------------------
  237.   rename [Optionen] [Quelle\][Dateien] [Ziel\][Datei]
  238.   
  239.   Diese Funktion ersetzt den Shell-internen "mv" o. "rename" Befehl. Dabei
  240.   bleiben die Glasnost Kommentare erhalten, sie beziehen sich ja auf den
  241.   Inhalt einer Datei - und nicht auf den Namen. "rename" benennt `Quelle\
  242.   Datei' in `Ziel\datei' um oder verschiebt eine oder mehrere `Dateien' in
  243.   das angegebene Verzeichnis. Dabei können auch komplette Verzeichnisse
  244.   (ohne Unterverzeichnisse, siehe "copy") verschoben werden. Wenn nur ein
  245.   Argument angegeben ist wird das aktuelle Verzeichnis als Ziel benutzt,
  246.   sonst immer das letzte Argument. Es kann - wie üblich - nur innerhalb
  247.   eines Laufwerks verschoben werden. Der Zugriff auf schreibgeschützte Da-
  248.   teien wird mit dem Hinweis "Zugriff nicht möglich" bestraft. Mit "apply"
  249.   als Prefix lassen sich auch komplizierte rename-Aktionen realisieren.
  250.   (z.B alle *.x nach *.y, siehe "apply"..)
  251.   
  252.   Optionen:
  253.   
  254.   -v    (version)   aktuelle Versionsnummer ausgeben.
  255.   -q    (quiet)     alle Textausgaben unterdrücken.
  256.   
  257.   Environment:
  258.  
  259.   DSCFILE   Name der Glasnost Systemdatei, siehe -> Allgemeine Benutzung.
  260.  
  261.  
  262.  
  263.   delete
  264.   ------------------------------------------------------------------------
  265.   delete [Optionen] [Verzeichnis\][Dateien]
  266.   
  267.   Verhält sich fast genauso wie der interne Shellbefehl "del" o. "rm". Die
  268.   Funktion löscht eine oder mehrere `Dateien' oder auch ganze Verzeichnis-
  269.   se. Im letzten Fall wird nur der Inhalt gelöscht, das Verzeichnis selbst
  270.   bleibt jedoch erhalten. Eine Sicherheitsabfrage erfolgt nur wenn dies
  271.   durch die Option '-s' eingeschaltet ist. Zugriffe auf schreibgeschützte
  272.   Dateien werden mit dem Hinweis "Zugriff nicht möglich" bestraft.
  273.   
  274.   Optionen:
  275.   
  276.   -v    (version)   aktuelle Versionsnummer ausgeben.
  277.   -q    (quiet)     alle Textausgaben unterdrücken.      
  278.   -s    (security)  Löschen nur mit Bestätigung
  279.  
  280.   Environment:
  281.  
  282.   DSCFILE   Name der Glasnost Systemdatei, siehe -> Allgemeine Benutzung.
  283.  
  284.   
  285.  
  286.   apply
  287.   ------------------------------------------------------------------------
  288.   apply [Optionen] Funktion [Argumente]..
  289.         ..to [Verzeichnis\][Dateien] [Bedingungen]
  290.   
  291.   "apply" nimmt innerhalb des Glasnost Systems eine Sonderstellung ein da
  292.   es praktisch keine eigene Funktion hat, sondern dazu dient andere Funk-
  293.   tionen (interne o. externe Shellkommandos) aufzurufen. Dabei baut es an-
  294.   hand seiner eigenen Argumente (die nach dem "to") eine oder mehrere Kom-
  295.   mandozeilen zusammen, mit denen eine andere Funktion aufgerufen wird.
  296.   D.h. die angegebene `Funktion' wird auf `Dateien' angewendet die den ge-
  297.   forderten `Bedingungen' entsprechen.
  298.   
  299.   Dabei kann - muss aber nicht - in `Argumente' das Stellvertreterzeichen
  300.   '%' benutzt werden welches 2 Aufgaben hat:
  301.   
  302.   1.)   mit einer unmittelbar darauffolgenden Zahl (optional) kann festge-
  303.         legt werden wieviele Argumente (Dateinamen) der `Funktion' pro
  304.         Aufruf maximal übergeben werden dürfen. (Voreinstellung ist: unbe-
  305.         grenzt viele, max. 256 Zeichen) Die von "apply" ermittelten Argu-
  306.         mente werden anstelle des '%' in die Kommandozeile eingesetzt.
  307.    
  308.   2.)   mit einem unmittelbar darauffolgenden Punkt + max. 3 Buchstaben
  309.         (z.B '%.txt', nur sinnvoll bei einem vorhergegangenen '%1') kann
  310.         eine bestimmte Dateiextension vorgegeben werden. D.h. an dieser
  311.         Stelle wird der von "apply" ermittelte Dateiname eingesetzt, aber
  312.         ohne Pfadkomponente und mit der neuen Extension.
  313.   
  314.         Beispiele:  Funktion  Argumente
  315.                     --------  -------------------
  316.                       rename  %1 %.xyz
  317.                          ass  %1 -o d:\objekt\%.o
  318.                         more  %5
  319.                         copy  -q % h:\tempdir
  320.                        print  % -xrd
  321.                          dir  -su6
  322.   
  323.   Das '%' wird also nur gebraucht wenn 1.) eine zahlenmässige Begrenzung
  324.   der Argumente erforderlich ist, oder 2.) die Argumente eine ganz be-
  325.   stimmte Position in der Kommandozeile einnehmen sollen. Ohne das '%'
  326.   werden die ermittelten Argumente immer hinten angehängt. Die Funktion
  327.   wird sooft aufgerufen bis alle ermittelten Argumente bearbeitet sind.
  328.   
  329.   Alle Parameter die dem "to" (siehe oben) folgen, werden als `Verzeich-
  330.   nis\Dateiname' interpretiert sofern sie nicht durch ein vorangestelltes
  331.   '-' als Option oder Bedingung markiert sind. Wenn `Verzeichnis\Dateien'
  332.   fehlt beziehen sich `Bedingungen' auf das aktuelle Verzeichnis. Sowohl 
  333.   in den Dateinamen als auch in den Bedingungen können erweiterte (Unix-
  334.   ähnliche) Suchmuster benutzt werden.
  335.   
  336.   Suchmuster:
  337.   
  338.   "?"       steht für _ein_ beliebiges Zeichen.
  339.   "*"       steht für kein oder beliebig viele "?".
  340.   "[a-z]"   steht für ein Zeichen innerhalb des Bereichs [von-bis].
  341.   "[örKs]"  steht für eins der in Klammern angegebenen Zeichen.
  342.   
  343.   Jedes Zeichen kann mit einem vorangestelltem '\' gequoted werden und
  344.   verliert dadurch seine Sonderbedeutung. Durch ein führendes '^' wird der
  345.   Wahrheitsgehalt eines Ausdrucks umgekehrt, sowohl innerhalb der '[]' als
  346.   auch für das gesamte Suchmuster. Gross/Kleinschreibung wird nur beachtet
  347.   wenn dies durch die Option '-c' (case-sensitivity) eingeschaltet ist.
  348.   
  349.   Bedingungen:
  350.   
  351.   -e Suchmuster
  352.         (extendet-name) es werden nur Dateien gefunden deren Kommentar dem
  353.         angegebenen Suchmuster entspricht. Beispiele:
  354.         -e '?*'         alle Dateien die irgendeinen Kommentar haben.
  355.         -e '^?*'        alle Dateien die _keinen_ Kommentar haben. 
  356.         -e'zaeh source' alle Dateien mit exakt diesem Kommentar.
  357.         -e'test*'       alle Dateien deren Kommentar mit "test" beginnt.
  358.         -e'^*oxmox*'    alle Dateien deren Kommentar _nicht_ die Zeichen-
  359.                         folge "oxmox" enthält.
  360.                                             
  361.   -d [<>=]Datum1[-Datum2]
  362.         (date) es werden nur Dateien gefunden bei denen das Erstellungsda-
  363.         tum gleich `Datum1' ist, oder in dem angegebenen Bereich liegt.
  364.         Es gilt die übliche Schreibweise; Leerzeichen sind erlaubt, aber
  365.         nicht nötig. (gilt auch für -t , -s und -a)
  366.         Beispiele:  -d'1.1.91 - 31.12.91'   Anfang bis Ende 1991
  367.                     -d '10.1'               10. Januar dieses Jahres
  368.                     -d '<13'                1. bis 12. dieses Monats
  369.   
  370.   -t [<>=]Zeit1[-Zeit2]
  371.         (time) es werden nur Dateien gefunden deren Erstellungszeit gleich
  372.         `Zeit1' ist, oder in dem angegebenen Bereich liegt.
  373.         Beispiele:  -t'12-17:00'            12:00 bis 17:00
  374.                     -t '17'                 genau 17:00 Uhr
  375.                     -t '>= 20'              20:00 bis 23:59 Uhr
  376.   
  377.   -s [<>=]Grösse1[-Grösse2]
  378.         (size) es werden nur Dateien gefunden deren Länge genau `Grösse1'
  379.         beträgt, oder in dem angegebenen Bereich liegt.
  380.         Beispiele:  -s'<1000'               kleiner als 1000 Bytes
  381.                     -s '100000 -200000'     dürfte klar sein..
  382.                     -s '=< 5000'            0 bis 5000 Bytes
  383.   
  384.   -a [^]RHSLA
  385.         (attribute) es werden nur Dateien gefunden bei denen die entspre-
  386.         chenden Attribute gesetzt - oder (bei vorangestelltem '^') nicht
  387.         gesetzt sind. Als Attribute gelten folgende Grossbuchstaben:
  388.         [R]ead only, [H]idden, [S]ystem, [L]abel, [A]rchiv.
  389.         Beispiele:  -aA      alle Dateien mit gesetztem Archivbit.
  390.                     -a RA    Read only und Archivbit muss gesetzt sein.
  391.                     -a 'A^R' Archivbit gesetzt, kein Schreibschutz.
  392.   
  393.   Damit eine Datei gefunden wird, müssen alle angegebenen Bedingungen zu-
  394.   treffen. Jede Bedingung kann - mit unterschiedlichen Argumenten - auch
  395.   mehrmals verwendet werden.
  396.   
  397.   Optionen:
  398.   
  399.   -v  (version)          aktuelle Versionsnummer ausgeben.
  400.   -c  (case-sensitivity) Gross/Kleinschreibung im Suchmuster beachten.
  401.   -h  (hidden)           Versteckte u. Systemdateien berücksichtigen.
  402.   -i  (info)             Funktionsaufrufe (Kommandozeilen) anzeigen.
  403.   -n  (non-execute)      Funktionsaufrufe nur anzeigen, nicht ausführen.  
  404.   -l  (list-directory)   Das jeweils bearbeitete Verzeichnis anzeigen.
  405.   -r  (rekursiv)         es werden alle Verzeichnisse unter dem angege-
  406.                          benen, oder aktuellen Verzeichnis bearbeitet.
  407.  
  408.   Environment:
  409.  
  410.   DSCFILE   Name der Glasnost Systemdatei, siehe -> Allgemeine Benutzung.
  411.  
  412.   Hinweis: "apply" funktioniert nur in Verbindung mit einer Shell, die die
  413.   Systemvariable `_shell_p' initialisiert hat.
  414.  
  415.   
  416.  
  417.   Beispiele + Tips
  418.   ------------------------------------------------------------------------
  419.   In allen Fällen in denen Wildcards in Dateinamen verwendet werden die
  420.   sich nicht auf das aktuelle Verzeichnis beziehen, empfiehlt es sich
  421.   diese mit '' zu quoten. Es kann sonst zu merkwürdigen Ergebnissen kommen
  422.   da die Shell (Mupfel, Gulam) stets versucht diese Wildcards anhand des
  423.   aktuellen Verzeichnisses zu expandieren. In der harten Alltagspraxis hat
  424.   es sich als nützlich erwiesen die langen Glasnost Programmnamen durch
  425.   2buchstabige Aliase zu ersetzen.. damit lassen sich auch sehr schön be-
  426.   stimmte Optionen voreinstellen. (z.B alias ls 'dir.ttp -ua')
  427.   
  428.   Vor der Anwendung von "apply" sollte man dessen Funktionsweise mit der
  429.   Option "-n" ausprobieren.  Es eignet sich prima für Backup-Zwecke und
  430.   für Aufrufe aus Stapeldateien heraus. Wenn man z.B eine Batchdatei hat
  431.   mit der man bei jedem Systemstart (oder nach jedem Absturz) ganz be-
  432.   stimmte Dateien auf die Ramdisk kopiert, könnte man dort die folgende
  433.   Zeile einfügen:
  434.                     apply cp % g:\ to c:\ -re'+*'
  435.   
  436.   Nun kann man jederzeit per "describe" die Dateien kennzeichnen die von
  437.   dieser Batchdatei kopiert werden sollen (alle Dateien auf Laufwerk c:
  438.   die ein '+' als erstes Zeichen im Kommentar haben..). Dabei spielt es
  439.   auch keine Rolle ob man das normale, oder das Glasnost `cp' benutzt.
  440.   
  441.   Der voreingestellte Dateiname DESCRIPT.ION kann über die Environmentva-
  442.   riable `DSCFILE' geändert werden. Auf die Art u. Weise lassen sich dann 
  443.   auch mehrere Kommentar Set's verwalten (COMPILE.ION, BACKUP.ION etc.)
  444.  
  445.   Beispiele:
  446.   
  447.   "alias ds 'describe.ttp'";  "ds" oder "ds c:\tempdir"
  448.         Die Kommentare aller Dateien im aktuellen Verzeichnis oder im Ver-
  449.         zeichnis "c:\tempdir" können interaktiv editiert werden.
  450.   
  451.   "ds c:\tempdir\*.bak '*.dup' 'später löschen!'"
  452.         Alle Dateien im Verzeichnis "c:\tempdir" mit der Endung ".bak"
  453.         oder ".dup" werden mit dem Kommentar "später löschen" versehen.
  454.   
  455.   "apply ds 'Zaeh Saucen Code' to d:\ '*.c' '*.h' -re '^?*'"
  456.         Alle Dateien auf Laufwerk d: mit den Endungen ".c" oder ".h" die
  457.         noch keinen Kommentar haben, werden mit dem angegebenen Kommentar
  458.         versehen.
  459.   
  460.   "alias ls 'dir.ttp'";  "ls *.ttp"
  461.         Alle Dateien mit der Endung "*.ttp" auflisten.
  462.   
  463.   "apply ls to '^*.ttp'"
  464.         Alle Dateien, ausser die mit der Endung "*.ttp", auflisten.
  465.   
  466.   "apply ls -s to c:\ -lr"
  467.         Gesamtverzeichnis für Laufwerk c: ausgegeben, mit Kommentaren.
  468.   
  469.   "alias cp 'copy.ttp'";  "cp -n d:\source h:\source"
  470.         Alle Dateien aus "d:\source\" werden nach "h:\source" kopiert,
  471.         falls eine Datei im Zielverzeichnis bereits existiert, wird nur
  472.         der Kommentar kopiert.
  473.   
  474.   "apply cp % a:\tiramisu to c:\ -re'*Projekt TiramiSu*'"
  475.         Alle Dateien auf Laufwerk c: die die Zeichenfolge "Projekt Tira-
  476.         miSu" im Kommentar haben, werden in das Verzeichnis "a:\tiramisu"
  477.         kopiert, inklusive Kommentar.
  478.   
  479.   "alias mv 'rename.ttp'";  "mv c:\tempdir c:\trashdir"
  480.         Alle Dateien aus dem Verzeichnis "c:\tempdir\" werden nach
  481.         "c:\trashdir\" verschoben.
  482.   
  483.   "apply mv %1 %.dup to c:\*.bak -r"
  484.         Alle Dateien auf Laufwerk c: mit der Endung ".bak" werden in
  485.         gleichnamige Dateien mit der Endung ".dup" umbenannt, der Kommen-
  486.         tar bleibt erhalten.
  487.   
  488.   "alias rm 'delete.ttp'";  "rm c:\tempdir"
  489.         Alle Dateien im Verzeichnis "c:\tempdir" werden ohne Sicherheits-
  490.         abfrage gelöscht, ausgenommen versteckte und schreibgeschützte
  491.         Dateien.
  492.   
  493.   "apply rm to c:\ -re'*löschen*'"
  494.         Alle Dateien auf Laufwerk c: die die Zeichenfolge "löschen" im
  495.         Kommentar haben, werden gelöscht - inklusive Kommentar.
  496.   
  497.   "apply compress %1 to d:\ '*.[^pta]*' -rs'>100000'"
  498.         Alle Dateien auf Laufwerk d: die eine Extension haben die nicht
  499.         mit 'p', 't' oder 'a' beginnt und die grösser als 100000 Bytes
  500.         sind werden komprimiert.
  501.   
  502.   "apply ass %1 -o h:\objekt\%.o to d:\source '*.s' -id'>14'"
  503.         Alle Dateien im Ordner "d:\source" die die Endung ".s" haben und
  504.         nach dem 14. dieses Monats entstanden sind werden assembliert, die
  505.         entstehenden Objekt-Dateien werden im Verzeichnis "h:\objekt" ab-
  506.         gelegt. Jede Kommandozeile wird angezeigt.
  507.   
  508.   "apply %1 to d:\*.o -rne'*Projekt x*' > linkfile.txt"
  509.         Es wird eine Textdatei erzeugt die die Verzeichnis\Dateinamen
  510.         aller Objektdateien auf Laufwerk d: enthält die zum "Projekt x"
  511.         gehören.
  512.  
  513.   "apply %1 h:\test.txt to c:\*.prg -re'*Lieblingseditor*'
  514.         Alle Programme auf Laufwerk c: mit der Extension ".prg", die mit
  515.     der Zeichenfolge "Lieblingseditor" gekennzeichnet sind, werden mit
  516.     dem Argument "h:\test.txt" aufgerufen.
  517.  
  518.  
  519.  
  520.   Sonstiges
  521.   ------------------------------------------------------------------------
  522.   Glasnost legt im jeweiligen Verzeichnis eine versteckte Datei namens
  523.   DESCRIPT.ION an in der die erweiterten Dateinamen enthalten sind. Dabei
  524.   werden durch wahlfreies lesen/schreiben, auch mit älteren TOS Versionen
  525.   und/oder langsamen Festplatten, recht flotte Zugriffsgeschwindigkeiten
  526.   erreicht. Dieser Effekt wird lediglich beim erstmaligen Zugriff auf ein
  527.   Verzeichnis gebremst (und bei gelegentlichen Reorganisationen) weil da-
  528.   bei die Datei per Fcreate() neu angelegt werden muss. Aus dem Grund wer-
  529.   den auch ungebrauchte DESCRIPT.ION's nicht gelöscht. Das Ende der gül-
  530.   tigen Daten wird durch ein <CNTRL>Z angezeigt. Eine DESCRIPT.ION wird
  531.   bei jedem Schreibzugriff durch: describe, copy, rename oder delete nach
  532.   Dateileichen durchsucht - die z.B dann entstehen wenn Dateien die einen
  533.   Kommentar haben, mit dem normalen 'rm' gelöscht werden - gegebenenfalls
  534.   wird dann eine 'garbage collection' durchgeführt.
  535.  
  536.   Verzeichnisse die mehr als 300 Dateien enthalten, können von Glasnost
  537.   nicht mehr korrekt bearbeitet werden. Dazu wäre eine aufwendige dyna-
  538.   mische Speicherverwaltung nötig gewesen, was sich ungünstig auf die
  539.   Programmgrösse ausgewirkt hätte.. 
  540.   
  541.   Alle TTP's versuchen durch Nichtbenutzung der Funktion Dsetpath() das
  542.   berüchtigte 40 (oder neuerdings 100-Ordner) Problem zu umschiffen.
  543.   "apply" geht noch einen Schritt weiter und täuscht - bei Verwendung von
  544.   '-r' - gelegentlich einen Medienwechsel vor (..dazu braucht wohl nichts
  545.   gesagt zu werden, oder?).
  546.   
  547.   Risiken und Nebenwirkungen sind bis jetzt nicht bekannt - und wohl auch
  548.   in Zukunft nicht zu befürchten - da Glasnost völlig ohne Systemeingriffe
  549.   und/oder Vektorverbiegungen auskommt. Ansonsten: fragen Sie bitte Ihren
  550.   Arzt oder Apotheker.. der Autor (ich) kann leider keinerlei Garantie für
  551.   die korrekte Funktionsweise übernehmen (bei dem Preis).
  552.   
  553.   Glasnost wurde mit SOZOBON C (pd) und der von Holger Weets erweiterten
  554.   u. optimierten Standart Bibliothek programmiert. Die Routinen zur Such-
  555.   mustererkennung habe ich dem Sourcecode von MicroEMACS 3.9 entnommen.
  556.   An dieser Stelle mein Dank (..!) und schöne Grüsse in die USA!
  557.   
  558.   Diese PD Software ist noch keineswegs ausgereift, deshalb sind auch 
  559.   Fehlerhinweise, Anregungen, Verbesserungsvorschläge (und die üblichen
  560.   Drohbriefe) ganz besonders willkommen. Wer an dem Sourcecode interres-
  561.   siert ist schickt bitte einen frankierten Rückumschlag mit einer forma-
  562.   tierten Leerdiskette an: 
  563.   
  564.   Hans Hömberg
  565.   Linden Str. 136      
  566.   4150 Krefeld
  567.   BRD                                               Hals und Beinbruch..
  568.  
  569.